package Sources;

import Questions.*;
import TestApp.IOSystem;
import TestApp.MyNonNumberException;
import TestApp.Test;

import java.util.Arrays;

/**
 * @author Myhaylo Kotsyuruba
 * @version v.1.4   14.03.13
 */

public class SourceTests {
    public static Test getTest() {

        try {
        int numberOfQuestion = 10;
        int score = 10;

        String[]  parameters;
        String text;

        Question[] questions = new Question[numberOfQuestion];

        text = "Значения для оператора 'case' рекомендуется упорядочить по:";
        parameters = new String[]{"Возрастанию", "true", "Убыванию", "true",
                "Не рекомендуется", "false"};
        questions[0] = new ManyAnswersQuestion(text, score, Arrays.asList(parameters));

        text = "Рекомендуется всегда включать в код оператора Case вариант "
                + "default?";
        parameters = new String[]{"true"};
        questions[1] = new YesNoQuestion(text, score, Arrays.asList(parameters));

        text = "Базовым контейнером для хранения последовательностей однотипных"
                + " элементов в Java являются массивы?";
        parameters = new String[] {"true"};
        questions[2] = new YesNoQuestion(text, score, Arrays.asList(parameters));


        text = "Для объявления массива применим синтаксис:";
        parameters = new String[]{"int[] a[]", "true", "int [] array", "true",
                                  "int array []", "true"};
        questions[3] = new ManyAnswersQuestion(text, score, Arrays.asList(parameters));

        text = "Приведет ли к исключительной ситуации попытка обращения по "
                + "индексу, выходящему%nза размер массива ошибке времени "
                + "выполнения?";
        parameters = new String[]{"true"};
        questions[4] = new YesNoQuestion(text, score, Arrays.asList(parameters));

        text = "Каким свойством можно воспользоваться для определения "
                + "количества элементов в массиве?";
        parameters = new String[]{"2", "size", "length", "numberElements"};
        questions[5] = new OneAnswerQuestion(text, score, Arrays.asList(parameters));


        text = "Может ли быть изменен размер массива после создания?";
        parameters = new String[]{"false"};
        questions[6] = new YesNoQuestion(text, score, Arrays.asList(parameters));

        text = "Какие плюсы от использования for-each?";
        parameters = new String[]{"Улучшает читабельность", "true",
                "Повышает быстродействие", "false",
                "Снижает вероятность появления ошибок", "true"};
        questions[7] = new ManyAnswersQuestion(text, score, Arrays.asList(parameters));

        text = "Можно ли сделать так: Object arr[] = new Object[3]; "
                + "arr[2]=arr;?";
        parameters = new String[]{"true"};
        questions[8] = new YesNoQuestion(text, score, Arrays.asList(parameters));

        text = "Сколько обьектов будет  создано int i[][] = {{1,2}, null, {3},"
                + " {}}";
        parameters = new String[]{"4", "1", "2", "3", "4", "5"};
        questions[9] = new OneAnswerQuestion(text, score, Arrays.asList(parameters));


        text = "Java basic. Pages 10-12";
        return new Test(text, Arrays.asList(questions));

        } catch (MyNonNumberException e) {
            IOSystem.show("Can't create test.");
            e.printStackTrace();
        }
        return null;
    }
}
